package com.wonders.hisdoctor.station.project.base.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.wonders.his.common.utils.validator.group.InsertGroup;
import com.wonders.his.common.utils.validator.group.PrimaryGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * <p>患者疫苗接种信息</p>
 * <p>db_table: PAT_VACCINE_INFO</p>
 * @author 张澎_9970
 * @date 2021/06/25
 */
@ApiModel("患者疫苗接种信息")
@Accessors(chain = true)
@Data
@ToString
@TableName("PAT_VACCINE_INFO")
public class PatVaccineInfo implements Serializable {

    private static final long serialVersionUID = 2486346173355289854L;

    /** `主键` db_field: VACCINE_INFO_ID; desc: 疫苗接种信息ID */
    @ApiModelProperty("疫苗接种信息ID")
    @TableId
    @NotNull(message = "疫苗接种信息ID不能为空", groups = PrimaryGroup.class)
    @TableField("VACCINE_INFO_ID")
    private String vaccineInfoId;

    /** db_field: VACCINE_REGISTER_ID; desc: 疫苗接种登记ID */
    @ApiModelProperty("疫苗接种登记ID")
    @TableField("VACCINE_REGISTER_ID")
    private String vaccineRegisterId;

    /** db_field: VACCINE_CODE; desc: 疫苗代码 */
    @ApiModelProperty("疫苗代码")
    @TableField("VACCINE_CODE")
    private String vaccineCode;

    /** db_field: VACCINE_NAME; desc: 疫苗通用名称 */
    @ApiModelProperty("疫苗通用名称")
    @TableField("VACCINE_NAME")
    private String vaccineName;

    /** db_field: FIRM_ID; desc: 产地 */
    @ApiModelProperty("产地")
    @TableField("FIRM_ID")
    private String firmId;

    /** db_field: BATCH_NO; desc: 批号 */
    @ApiModelProperty("批号")
    @TableField("BATCH_NO")
    private String batchNo;

    /** db_field: USAGE; desc: 用量 */
    @ApiModelProperty("用量")
    @TableField("USAGE")
    private String usage;

    /** db_field: DOSAGE_NUM; desc: 剂次数 */
    @ApiModelProperty("剂次数")
    @TableField("DOSAGE_NUM")
    @NotNull(message = "剂次数, 不可为空", groups = InsertGroup.class)
    private Integer dosageNum;

    /** db_field: VACCINE_TYPE; desc: 疫苗类别：一类疫苗 、二类疫苗 */
    @ApiModelProperty("疫苗类别：一类疫苗 、二类疫苗")
    @TableField("VACCINE_TYPE")
    private String vaccineType;

    /** db_field: VACCINE_DATE; desc: 接种日期 */
    @ApiModelProperty("接种日期")
    @TableField("VACCINE_DATE")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date vaccineDate;

    /** db_field: VACCINE_REACTION; desc: 疫苗异常反应：无 、有 */
    @ApiModelProperty("疫苗异常反应：无 、有")
    @TableField("VACCINE_REACTION")
    @NotBlank(message = "异常反应, 不可为空", groups = InsertGroup.class)
    private String vaccineReaction;

    /** db_field: VACCINE_REACTION_MEMO; desc: 疫苗异常反应说明 */
    @ApiModelProperty("疫苗异常反应说明")
    @TableField("VACCINE_REACTION_MEMO")
    private String vaccineReactionMemo;

    /** db_field: REGISTER_DATE; desc: 登记日期 */
    @ApiModelProperty("登记日期")
    @TableField("REGISTER_DATE")
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss",timezone="GMT+8")
    private Date registerDate;

    /** db_field: REGISTER_ID; desc: 登记人ID */
    @ApiModelProperty("登记人ID")
    @TableField("REGISTER_ID")
    private String registerId;

    /** db_field: REGISTER_NAME; desc: 登记人名称 */
    @ApiModelProperty("登记人名称")
    @TableField("REGISTER_NAME")
    private String registerName;

    /** db_field: REGISTER_STATUS; desc: 登记状态：0 无效 1 有效 9 删除 */
    @ApiModelProperty("登记状态：0 无效 1 有效 9 删除")
    @TableField("REGISTER_STATUS")
    private String registerStatus;

    /** db_field: HOSPITAL_CODE; desc: 机构代码 */
    @ApiModelProperty("机构代码")
    @TableField("HOSPITAL_CODE")
    private String hospitalCode;

}